package com.chinairi.mall.dao;

import com.chinairi.mall.model.SupplierOrderProduceInformation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 供应商订单生产信息跟踪业务逻辑层接口
 * </p>
 * @author 李昌赐
 * @since 2020-12-11
 */
public interface SupplierOrderProduceInformationMapper extends BaseMapper<SupplierOrderProduceInformation> {

    /**
     * 供应商端订单生产信息查询
     * @param supplierOrderProduceInformation 参数
     * @return 供应商端订单生产信息
     */
    Map<String,Object> getSupplierOrderProduceInformation(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 生产计划信息查询
     * @param supplierOrderProduceInformation 参数
     * @return 生产计划信息
     */
    List<Map<String,Object>> listProProductPlan(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 开始生产信息查询
     * @param supplierOrderProduceInformation 参数
     * @return 开始生产信息
     */
    List<Map<String,Object>> listStartProduce(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 产品总装信息获取
     * @param proProductPlanCode  主生产计划
     * @return 总装信息
     */
   Map<String,Object> getProInventory(@Param("proProductPlanCode") String proProductPlanCode);

    /**
     * 订单入检信息
     * @param supplierOrderProduceInformation 查询参数
     * @return 入检信息
     */
   Map<String,Object> listQltAssenblyInspection(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 产品入库信息
     * @param supplierOrderProduceInformation 查询条件
     * @return  产品入库信息
     */
    Map<String,Object> listProductIntoStorage(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 出库信息查询
     * @param supplierOrderProduceInformation
     * @return
     */
    Map<String,Object> listProductOutStorage(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 出库信息查询
     * @param supplierOrderProduceInformation
     * @return
     */
    List<Map<String,Object>> listOutStorage(@Param("supplierOrderProduceInformation") SupplierOrderProduceInformation supplierOrderProduceInformation);

    /**
     * 订单计划信息
     * @param orderId 订单id
     * @return 订单的计划信息
     */
    Map<String,Object> getProjectPlanReq(@Param("orderId") String orderId);

    /**
     * 订单信息
     * @param orderId 订单信息
     * @return 订单信息
     */
    Map<String,Object> getOrderInfo(@Param("orderId") String orderId,@Param("matCode") String matCode);
}
